﻿/// <summary>
/// 泛型单例基类（必须同时满足：class类型 + 有无参构造函数）
/// 功能：为派生类提供全局唯一访问点
/// </summary>
/// <typeparam name="T">需要实现单例的类型</typeparam>
public class Singleton<T> where T : class, new()
{
    // 单例实例存储字段（线程安全懒加载）
    private static T ins;

    /// <summary>
    /// 全局访问点（首次访问时自动创建实例）
    /// </summary>
    public static T Ins
    {
        get
        {
            // 使用空值合并运算符简化实例创建
            ins ??= new T(); // 等同于：ins = ins ?? new T()
            return ins;
        }
    }
}
